#include "cuda_utils.h"
#include "cnf_data.h"

CNFData::CNFData() :
			_litArrSize(0), _litArrIndexSize(0),
			_claArrSize(0), _claArrIndexSize(0),
			_litArr(NULL), _claArr(NULL),
			_litArrIndex(NULL), _claArrIndex(NULL),
			_varAssignment(NULL)
{}

CNFData::~CNFData()
{
	HANDLE_CUDA_ERROR( cudaFreeHost( _litArr ) );
	HANDLE_CUDA_ERROR( cudaFreeHost( _claArr ) );
	HANDLE_CUDA_ERROR( cudaFreeHost( _litArrIndex ) );
	HANDLE_CUDA_ERROR( cudaFreeHost( _claArrIndex ) );
	HANDLE_CUDA_ERROR( cudaFreeHost( _varAssignment ) );
}

void CNFData::allocate_pinned_memory( void** pHost, size_t size, unsigned int flags )
{
	HANDLE_CUDA_ERROR( cudaHostAlloc( pHost, size, flags ) );
}
